home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / a_utils / ffccflow / ffccflow.lha / ffccc+flow / ffccc / GETNAM.f < prev    next >
Text File  |  1992-07-31  |  2KB  |  57 lines

  1.       SUBROUTINE GETNAM(STRING,K1,K2,KFCH,KLCH) 
  2. *-----------------------------------------------------------------------
  3. *   
  4. *--- finds one name at a time   
  5. *   
  6. *--- input  
  7. *    STRING           input string  
  8. *    K1, K2           first and last ch. in STRING for scan 
  9. *--- output 
  10. *    KFCH             start of name in STRING, or 0 if none 
  11. *    KLCH             end of name in STRING 
  12. *   
  13. *-----------------------------------------------------------------------
  14.       CHARACTER STRING*(*), STEMP*1, SLAST*1
  15.       LOGICAL STARTD,SKIP   
  16.       include 'CONVEX.h' 
  17.       SLAST=' ' 
  18.       STARTD=.FALSE.
  19.       SKIP=.FALSE.  
  20.       KNB=0 
  21.       KFCH=0
  22.       JC=K1-1   
  23.    10 JC=JC+1   
  24.       KLCH=KNB  
  25.       IF (JC.GT.K2) GOTO 999
  26.       STEMP=STRING(JC:JC)   
  27. *--- skip blanks
  28.       IF (STEMP.EQ.' ') GOTO 10 
  29.       IF(STEMP.EQ.'{')  THEN
  30. *--- start of string - quit or skip 
  31.          IF (STARTD) GOTO 999   
  32.          I=INDEX(STRING(JC+1:K2),'}')   
  33.          IF (I.EQ.0) GOTO 999   
  34.          JC=I+JC
  35.          GOTO 10
  36.       ENDIF 
  37.       KNB=JC
  38.       IF(SPECCH(STEMP))  THEN   
  39.          IF (STARTD) GOTO 999   
  40. *--- 'SKIP' helps to ignore .ge. etc
  41.          SKIP=STEMP.EQ.'.'.AND.(.NOT.SKIP.OR.SLAST.EQ.'.')  
  42.       ELSEIF(ALPHCH(STEMP))  THEN   
  43.          IF (.NOT.(SKIP.OR.NUMCH(SLAST)))  THEN 
  44. *--- preceding if is to catch 1E3 etc   
  45.             IF (.NOT.STARTD) KFCH=JC
  46.             STARTD=.TRUE.   
  47.          ENDIF  
  48.       ELSE  
  49. *--- numeric
  50.          SKIP=.FALSE.   
  51. *--- this is necessary for 1.E3 etc.
  52.       ENDIF 
  53. *--- keep last character
  54.       SLAST=STEMP   
  55.       GOTO 10   
  56.   999 END   
  57.